#!/usr/bin/env python3
"""
测试 MCP 服务器的简单脚本
"""
import os
import subprocess
import sys
import time

# 设置编码避免中文问题
if sys.stdout.encoding != 'utf-8':
    sys.stdout.reconfigure(encoding='utf-8')

def test_tools_directly():
    """直接测试工具功能，不通过MCP协议"""
    print("直接测试工具功能...")

    # 模拟工具调用
    def echo_tool(message):
        return f"回显: {message}"

    def add_numbers(a, b):
        return a + b

    # 测试 echo 工具
    result1 = echo_tool("Hello MCP!")
    print(f"Echo 测试: {result1}")

    # 测试加法工具
    result2 = add_numbers(5, 3)
    print(f"加法测试: 5 + 3 = {result2}")

    print("所有工具功能正常!")

def run_server_briefly():
    """短暂运行服务器测试"""
    print("启动服务器测试...")

    try:
        # 启动服务器进程，设置环境变量确保UTF-8编码
        env = dict(os.environ)
        env['PYTHONIOENCODING'] = 'utf-8'

        process = subprocess.Popen(
            [sys.executable, "simple_server.py"],
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True,
            encoding='utf-8',
            env=env
        )

        # 等待一会儿让服务器启动
        time.sleep(2)

        # 检查服务器是否正常运行
        if process.poll() is None:
            print("服务器启动成功并在运行中")
            # 读取一些输出看看
            try:
                stdout, stderr = process.communicate(timeout=1)
                if stdout:
                    print(f"服务器输出: {stdout[:100]}...")
                if stderr:
                    print(f"服务器错误: {stderr[:100]}...")
            except:
                pass
        else:
            print("服务器启动失败")
            stderr = process.stderr.read()
            print(f"错误信息: {stderr}")

        # 终止进程
        process.terminate()
        process.wait()

    except Exception as e:
        print(f"测试失败: {e}")

if __name__ == "__main__":
    print("=" * 50)
    print("MCP 服务器测试")
    print("=" * 50)

    # 测试1: 直接功能测试
    test_tools_directly()

    print("\n" + "-" * 30)

    # 测试2: 服务器启动测试
    run_server_briefly()

    print("\n" + "=" * 50)
    print("下一步: 运行 'python mcp_server.py' 启动完整服务器")
    print("然后在另一个终端使用 MCP 客户端连接")